Proof Weaving
نویسنده
چکیده
Mulhern Automated proof assistants provide few facilities for incremental development. Generally, if the underlying structures on which a proof is based are modified, the developer must redo much of the proof. Yet incremental development is really the most natural approach for proofs of programming language properties [5, 12]. We propose " proof weaving " , a technique that allows a proof developer to combine small proofs into larger ones by merging proof objects. We automate much of the merging process and thus ease incremental proof development for programming language properties. To make the discussion concrete we take as an example the problem of proving type-soundness by proving progress and preservation [17] in Coq [3, 7]. However we believe that the methods can be generalized to other proof assistants which generate proof objects, and most directly to those proof assistants which exploit the Curry-Howard isomorphism in representing proof terms as λ-terms [16], e.g. Isabelle and Minlog. We rely on the proof developer to initially prove type-soundness for " tiny " languages. Each of these languages encapsulates a single well-defined programming feature. For example, a tiny language of booleans can be restricted to the terms True, False, and If and their accompanying typing and evaluation rules. Tiny languages have relatively small and easily developed proofs of type-soundness. Having developed a repository of small languages along with their associated soundness proofs, the developer builds larger languages by combining small languages in a pairwise progression. Proofs are woven together using a multiphase approach. In the first phase, we rely explicitly on the fact that the proofs are developed using induction on the structure of the terms of the language 2. The two proofs being merged thus have a similar structure; each proof is the application of the induction principle for the terms of the language to subproofs corresponding to each term. We extract these subproofs from the already existing proofs for each tiny language and apply the induction principle for the combined language to each extracted proof. Generally there will not be a completed proof at the end of the first phase. Each subproof may contain transparent dependencies 3 on parts of the language in the same way that the whole proof contains a transparent dependency on the structure of terms. In the second phase, we rewrite each term that contains a transparent dependency introducing place holders, i.e., " holes " , for each …
منابع مشابه
Cyclic Plain-Weaving on Polygonal Mesh Surfaces with Extended Graph Rotation Systems
In this paper, we show how to create plain-weaving over an arbitrary surface. To create a plain-weaving on a surface, we need to create cycles that cross other cycles (or themselves) by alternatingly going over and under. We prove that it is possible to create such cycles, starting from any given manifold-mesh surface, by simply twisting every edge of the manifold mesh. Our proof is based on ou...
متن کاملA Crash Prediction Model for Weaving Sections
1 Weaving is defined as the crossing of two streams travelling in the same direction along a 2 significant section of the road without the assistance of traffic control devices. Merging and 3 diverging vehicles need to make one or more lane-changes in a limited space and time, 4 determined by the weaving section length. This situation creates intensive lane-change 5 maneuvers, combined with hea...
متن کاملA Study of Dynamic Weaving for Aspect-Oriented Programming
The previous implementations of dynamic weaving in AOP (AspectOriented Programming) systems have drawbacks although it is receiving growing interests in both the academia and the industry. Typical dynamic weaving techniques are divided into two kinds of levels in terms of granularity of aspect weaving: a class-level and an object-level weaving. Either of weaving techniques also has each problem...
متن کاملStatic and Dynamic Approaches to Weaving
In this paper we present current state of principles and applications in static and dynamic weaving. We are concentrating on static weaving in AspectJ and dynamic weaving in PROSE PROgrammable extenSions of sErvice. The contribution of this paper is in analyses of both approaches to weaving which we aim to apply as essential mechanisms when constructing software systems by automatic evolution.
متن کاملGeometric Approach to Modeling Vehicular Speeds through Simple Freeway Weaving Sections
1 a typical simple one-side weaving section, as shown in Figure 1, the geometric variables of the weaving section are the length of the weaving section, L, and the number of lanes within the weaving section, N. Length of the weaving section is measured from a point where the entrance gore is 2 feet wide to a point where the exit gore is 12 feet wide. Vehicular flow is categorized into four gene...
متن کامل